文章目录
  1. 1. 2002-RankSvm
  2. 2. 2006-IRSVM
    1. 2.1. 问题1:位置误差
    2. 2.2. 问题2:长度误差
    3. 2.3. 优化学习方法
  3. 3. 2005-RankNet
  4. 4. 2007-GBRank
  5. 5. 参考

由于Pairwise方式的排序学习方法 训练样本构建方便、速度快同时效果也还可以,因此在工业界和学术的应用非常广泛^_^

2002-RankSvm

RankSvm是最经典的一种,将其余的相关实现方法学习总结简单的记录到本文中。
RankSvm的学习记录在这里

2006-IRSVM

IRSVM直接是RankSvm的改进,RankSvm的训练目标是让序列pair的不一致pair对对最少,其优化函数为:
τ(ra,rb)=PQP+Q=12Q(m2)


因此直接暴露了两大问题:

问题1:位置误差

Example1:
档位:3,2,1
排序1:2 3 2 1 1 1 1
排序2:3 2 1 2 1 1 1

从样例1中可以看到如果是按τ最大化进行优化的话,排序12 3为不一致pair,排序2中1 2为不一致pair,因此他们的τ得分是一致的,但是明显可以看到排序2的应该为更优,因为越top级别的重要性越大
因此IRSVM考虑了计算τ时将位置顺序纳入误差

问题2:长度误差

Example2:
档位:3,2,1
排序3:3 2 2 1 1 1 1
排序4:3 3 2 2 2 1 1 1 1 1

现观察样例2,可以发现排序3排序4中均未出现不一致pair的文档对,因此他们的τ得分是一样的,并且均为1,但是排序3中存在28个文档对,而排序4中存在45个文档对,所以排序4存在更多的训练数据,因此排序4的数据相当于RankSvm来说更加重要。
因此IRSVM将召回的文档个数纳入了排序

其实这点比较纠结,实际使用中会进行数据过滤,而且最终训练的时候也一般都是取top10进行训练,所以这个问题并不会很明显

优化学习方法

所以IRSVM考虑了不同排序位置的不同重要性,以及各个query召回的数量,对原始的RankSVM损失函数进行修改得到如下:
minwNi=1τk(i)μq(i))[1yi(w,x(1)ix(2)i)]++λ||w||2

其实重要是添加了位置得分因子τk(i),使用NDCG@1中的方法进行折损,以及添加了query召回的文档长度因子μq(i),使用的是最简单粗暴的1nq进行计算,其中nq表示召回的文档数量。

[2]中提出IRSVM的时候还使用了SGD线性规划进行了优化

2005-RankNet

RankNet的相关学习记录在这里

2007-GBRank

GBRank的相关学习记录在这里

参考

  1. 《Learning to Rank for Information Retrieval and Natural Language Processing》.Hang Li
  2. Cao Y, Xu J, Liu T Y, et al. Adapting ranking SVM to document retrieval[C]// SIGIR 2006: Proceedings of the International ACM SIGIR Conference on Research and Development in Information Retrieval, Seattle, Washington, Usa, August. 2006:186-193.
文章目录
  1. 1. 2002-RankSvm
  2. 2. 2006-IRSVM
    1. 2.1. 问题1:位置误差
    2. 2.2. 问题2:长度误差
    3. 2.3. 优化学习方法
  3. 3. 2005-RankNet
  4. 4. 2007-GBRank
  5. 5. 参考